package ar.edu.utn.frba.date.formater;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public abstract class FormateadorSimple extends Formateador {
	private String formatoEntrada;
	private SimpleDateFormat formateador;
	
	

	/**
	 * Constructor
	 * 
	 * @author David Desposito
	 * @version 1.0
	 * @param formatoEntrada:"dd/MM/yyyy"
	 * @return void(no return)
	 */
	public FormateadorSimple(String formatoEntrada) {
		super();
		this.formatoEntrada = formatoEntrada;
		this.formateador = this.obtenerFormateador(formatoEntrada);
	}
	
	/**
	 * Crea un forateador de acuerdo al forato recibido
	 * 
	 * @author David Desposito
	 * @version 1.0
	 * @param formatoEntrada:"dd/MM/yyyy"
	 * @return SimpleDaterFormat con el formato adecuado
	 */
	private SimpleDateFormat obtenerFormateador(String formatoEntrada) {
		return new SimpleDateFormat(formatoEntrada);
	}
	
	/**
	 * Convierte una fecha string a date
	 * 
	 * @author David Desposito
	 * @version 1.0
	 * @param fechaEntrada: fecha a convertir
	 * @return fechaPareseada: fecha convertida(null en caso de formato invalido)
	 * @throws ParseException 
	 */
	@Override
	public Date convertir(String fechaEntrada) throws ParseException{
		System.out.println("fecha entrada:" + fechaEntrada);
		Date fechaParseada=null;
		fechaParseada=getFormateador().parse(fechaEntrada);
		System.out.println("fecha salida:" + fechaParseada);
		return fechaParseada;
	}
	
	public String getFormatoEntrada() {
		return formatoEntrada;
	}
	public void setFormatoEntrada(String formatoEntrada) {
		this.formatoEntrada = formatoEntrada;
	}
	public SimpleDateFormat getFormateador() {
		return formateador;
	}
	public void setFormateador(SimpleDateFormat formateador) {
		this.formateador = formateador;
	}
	
	
}
